Dynamically adjustable electronic program guide

ABSTRACT

A processing device receives metadata for media content items and displays cells for the media content items in an overview area in an electronic program guide (EPG). The cells include subsets of metadata for the media content items. The processing device receives a selection a media content item and moves a cell, which includes a subset of metadata for the selected media content item, from the overview area to a focus area in the EPG. In response to determining that a scheduled duration for the selected media content item does not satisfy a condition pertaining to a maximum time interval of the focus area, the processing device adjusts a timeline of the focus area based on the scheduled duration of the selected media content, and replaces the subset of metadata in the cell in the focus area with expanded metadata for the selected media content item.

TECHNICAL FIELD

Aspects and implementations of the present disclosure relate toelectronic program guides (EPGs), and more specifically, to adynamically adjustable EPG.

BACKGROUND

EPGs may include a schedule for playing media content items (e.g.,videos). The EPG can include information, such as the titles andscheduled times, for the videos that are to be played. When the EPG isdisplayed on a user device (e.g., mobile phone), which may have a smalldisplay, the information for the videos in the EPG may be truncated orunreadable due to the small screen size.

SUMMARY

Aspects and implementations of the present disclosure improve electronicprogram guide (EPG) technology by dynamically adjusting an EPG in a userinterface (UI) on a mobile computing device to display additionalinformation for a particular video. The technology can dynamically andautomatically modify the amount of information and type of informationbeing displayed for the videos in an EPG. In one implementation, thedynamic adjustment of the EPG can be made automatically in response to asingle user interaction with the EPG. The EPG can include a focus areathat automatically displays additional information for a particularvideo.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects and implementations of the present disclosure will be understoodmore fully from the detailed description given below and from theaccompanying drawings of various aspects and implementations of thedisclosure, which, however, should not be taken to limit the disclosureto the specific aspects or implementations, but are for explanation andunderstanding only.

FIG. 1A illustrates an example of a focus area and overview area in adynamically adjustable electronic program guide (EPG) on a mobilecomputing device, in accordance with one implementation of thedisclosure.

FIG. 1B illustrates an example of a dynamically adjustable EPG havingmultiple overview areas, in accordance with one implementation of thedisclosure.

FIG. 1C illustrates an example of a dynamically adjustable EPG having apreview area, in accordance with one implementation of the disclosure.

FIG. 2 illustrates an example of metadata displayed in a dynamicallyadjustable EPG, in accordance with one implementation of the disclosure.

FIG. 3 depicts an example of selecting a media content item in anoverview area in an EPG for a focus area in the EPG and dynamicallyadjusting a timeline of the focus area based on the selected mediacontent item, in accordance with one implementation of the presentdisclosure.

FIG. 4 illustrates exemplary system architecture for implementations ofthe present disclosure.

FIG. 5 depicts a flow diagram of aspects of a method for dynamicallyadjusting an electronic program guide, in accordance with oneimplementation of the present disclosure.

FIG. 6 depicts an example of selecting a media content item in a previewarea in an EPG for a focus area in the EPG and dynamically adjusting atimeline of the focus area based on the selected media content item, inaccordance with one implementation of the present disclosure.

FIG. 7 illustrates an example of widths of cells in a dynamicallyadjustable EPG, in accordance with one implementation of the disclosure.

FIG. 8 depicts an example of an EPG having multiple overview areas, inaccordance with one implementation of the present disclosure.

FIG. 9 depicts an example of an EPG transitioning from having oneoverview area to multiple overview areas, in accordance with oneimplementation of the present disclosure.

FIG. 10 illustrates an example of system architecture for dynamicallyadjusting an electronic program guide, in accordance with oneimplementation of the disclosure.

FIG. 11 depicts a block diagram of an example computing device operatingin accordance with one or more aspects of the present disclosure.

DETAILED DESCRIPTION

Aspects and implementations of the present disclosure are directed todynamically adjusting an electronic program guide (EPG) in a userinterface (UI) on a mobile computing device to display additionalinformation for a particular video. A video streaming service can be anon demand online source for videos, TV shows, movies and other streamingmedia. A video is used as one example of streaming media throughout thisdocument. The technology of the present disclosure can dynamically andautomatically modify the amount of information and type of informationbeing displayed for the videos in an EPG. For example, the EPG mayinclude a schedule for playing videos and information for each of thevideos. With traditional EPGs, the type of information that is beingdisplayed for each of the videos is typically the same. For example, theEPG can include a title for each video and the scheduled times forplaying each video. When the EPG is displayed on mobile computingdevices that have small display screens, the information for each of thevideos is generally displayed using a small font size and/or a limitedamount of video information is displayed. Users generally have tomanually zoom into the user interface to read the information and zoomback out of the user interface to display more of the EPG. Because ofthe smaller display, the information may also be limited and/ortruncated. For example, if a title of a video is too long for the EPG ona small display, the EPG may include a truncated title for the video oran incomplete title for the video. Users may have to trigger anotheruser interface window (e.g., pop-up window) to display a complete titlefor the video, and may have to close the pop-up window to return to thedisplay of the EPG. Traditional EPGs process a high number of userinterface commands for the high number of user interactions.

Aspects of the present disclosure improve electronic programming guidetechnology by dynamically adjusting the types and/or amount of videoinformation that are being displayed in the EPG. Additionally, the cellsincluding the video information may also be dynamically adjusted toreveal additional information included in the cells. In oneimplementation, the dynamic adjustment of the EPG can be madeautomatically in response to a single user interaction with the EPG. TheEPG can include a focus area that automatically displays additionalinformation for a particular video. Accordingly, described herein invarious implementations are technologies that provide a greater amountof information for a video on the display of a mobile device whileprocessing a reduced number of user interface interactions. For example,a user does not need to initiate multiple operations that generate apop-up window and/or close the pop-up window to access the additionalvideo information.

FIG. 1A illustrates an example of a focus area and overview area in adynamically adjustable EPG 140A on a mobile computing device 102, inaccordance with one implementation of the disclosure. The EPG 140A canbe displayed in a user interface. The user interface can be a graphicaluser interface. The EPG 140A can include a focus area 150A thatautomatically displays additional information for a particular mediacontent item (e.g., video) that is selected by a user, as described ingreater detail below in conjunction with FIGS. 2-3. Media content items,can include, and are not limited to, digital videos, digital movies,digital photos, digital music, website content, social media updates,etc. A video is used as one example of a media content item throughoutthis document.

The EPG 140A can include an overview area 157A that displays limitedinformation about other media content items (e.g., videos) that arescheduled to be played, as described in greater detail below inconjunction with FIGS. 2-3. The focus area 150A can be in a top portion,middle portion, or bottom portion of the EPG 140A. The content in thefocus area 150A and overview area 157A can be scrollable.

The focus area 150A can have a width 121. Configuration data can includea maximum width parameter and a minimum width parameter for the focusarea 150A. The width 121 of the focus area 150A can be dynamicallyadjusted to correspond to (e.g., match, or not be greater or smallerthan) either the maximum width or the minimum width that is specified inthe configuration data, as described in greater detail below inconjunction with FIG. 3.

The focus area 150A can be associated with a time interval and candisplay a timeline 103 based on the time interval. An interval is adistinct measure of time defined by a beginning time and an end time.For example, the focus area 150A can be assigned a 30-minute timeinterval, and the timeline 103 can have a beginning time of 8:00 pm andan end time of 8:30 pm. In one implementation, the beginning time (e.g.,8:00 pm) for the timeline 103 corresponds to a scheduled start time fora video that is selected for the focus area 150A. In anotherimplementation, the beginning time (e.g., 8:00 pm) for the timeline 103is a current time.

The time interval and the display of the timeline 103 can be dynamicallyadjusted, as described in greater detail below in conjunction with FIG.3. The focus area 150A can have a maximum time interval. In oneimplementation, the maximum time interval is 30 minutes. The maximumtime interval can set a limit for the period of time represented by thetimeline 103. For example, the timeline 103 may not be extended beyond a30-minute time interval. The parameters (e.g., width, maximum timeinterval) of the focus area 150A can be defined by configuration data,as described in greater detail below in conjunction with FIG. 4.

The EPG 140A can be presented in a layout that corresponds with anorientation of mobile device 102. For example, when the mobile device102 has landscape (horizontal) orientation, the EPG 140A can have alandscape layout, and when the mobile device 102 has portrait (vertical)orientation, the EPG 140A can have a portrait layout.

FIG. 1B illustrates an example of a dynamically adjustable EPG 140Bhaving multiple overview areas 157B,157C, in accordance with oneimplementation of the disclosure. The focus area 150B can displayadditional information for a particular video. The multiple overviewareas 157B,157C can each display limited information about other videosthat are scheduled to be streamed and played. In one implementation thefocus area 150B is in between the multiple overview areas (e.g.,overview area 157B and overview area 157C). The content in the focusarea 150B and overview areas 157B,157C can be scrollable.

FIG. 1C illustrates an example of a dynamically adjustable EPG 140Chaving a preview area, in accordance with one implementation of thedisclosure. The EPG 140C includes a focus area 150C, an overview area157A, and a preview area 155. The content in the focus area 150C,overview area 157A, and preview area 155 can be scrollable. The previewarea 155 displays additional information about an upcoming scheduledvideo to be played after the selected video that is being displayed inthe focus area 150C. In one implementation, the preview area 155 isadjacent to the focus area 150C along a horizontal axis. In oneimplementation, the preview area 155 is the same height as the focusarea 150C. The width of the preview area is described in greater detailbelow in conjunction with FIG. 6. In one implementation, the previewarea 155 and the focus area 150C display information for videos that areto be streamed via the same channel. Channels are described in greaterdetail below in conjunction with FIG. 2.

FIG. 2 illustrates an example of metadata displayed in a dynamicallyadjustable EPG 240, in accordance with one implementation of thedisclosure. The EPG 240 can include information for a schedule forstreaming media content items (e.g., videos). In one implementation, theschedule is pre-defined. In another implementation, the schedule isdynamically defined in real-time. In yet another implementation, aportion of the schedule is pre-defined and another portion isdynamically defined in real-time. As used herein, the term real-time isused to indicate events that occur proximate in time to their cause,e.g., without unnecessary delay. For example, real-time scheduling ofone or more videos involves determining a video has finished playing,and making a selection or determination, in real-time (e.g., within apredefined time limit, such as 0.1 second or 0.5 second, of the videofinishing), of the video(s) to be played next based on an analysis of aset of videos that are associated with a user (e.g., played by a user,liked by a user, shared by a user, etc.). In one implementation, theselection of which videos are to be streamed and played is based onvideos that a user has watched, liked, shared, added to a playlist,commented on, subscribed to (as part of a channel subscription orindividually), etc.

The EPG 240 can include visual representations of the scheduled videos.In one implementation, the visual representations are cells (e.g., cell204, cell 206, cell 207, cell 208, cell 209, cell 210, and cell 211).The cells can be in a focus area 250 or in an overview area 257. Forexample, focus area 250 includes cell 204, and overview area 257includes cells 206,207,208,209,210,211.

The cells can display schedule time data (e.g., start time, end time)for a corresponding scheduled video. The cells can display a videoidentifier (e.g., video title) for a corresponding scheduled video. Thecell(s) in the focus area 250 can include expanded information comparedto the information in the cells in the overview area 257. Expandedinformation can refer to information that is complete and/or in additionto the information displayed in the overview area 257. For example, cell204 in the focus area 250 includes a complete title “Standup ComedyShow,” a complete display of a scheduled start time and a schedule endtime, and a description 205 of the content of the video “Standup ComedyShow”.

Due to the width of the overview area 257 and the widths of theindividual cells in the overview area 257, some of the cells in theoverview area 257 include incomplete titles, and/or truncated titles.For example, cell 207 in the overview area 257 can represent a videothat has a complete title “The Big Brown Fox,” and the title that isdisplayed in cell 207 can be the incomplete title “The Big Br . . . ”.In another example, in the overview area 257, cell 210 can represent avideo having a complete title “Nature Show,” and the title that isdisplayed in cell 210 can be the incomplete title “Natur . . . ”.

One or more of the scheduled videos can be associated with a contentprovider. A video streaming service provider can assign channels tocontent providers, and content providers can stream videos according tothe schedule via a respective channel. A channel can be data contentavailable from a common source or data content having a common topic ortheme. The data content can be digital content chosen by a user, digitalcontent made available by a user, digital content uploaded by a user,digital content chosen by a content provider, digital content chosen bya broadcaster, etc. The EPG 240 can include channel identifiers. Thechannel identifiers can be images and/or text. The images can be logosof a content provider that is assigned to the respective channel. Forexample, the channel identifier 245 can be a logo image for ACMEnetwork. In one implementation, the EPG 240 includes a channelidentifier for the video content being displayed in the focus area 250.The channel identifier for the focus area 250 can be adjacent to thefocus area 250.

The EPG 240 can include a channel axis having channel identifiers alongthe axis. In one implementation, the channel axis is a vertical axis.The cells for the videos in the EPG 240 can be arranged by contentprovider and/or channel. For example, cell 206 for the video “ShortProgram” and cell 207 for the video “The Big Br . . . ” are alignedhorizontally with the ACME-FAM channel.

The EPG 240 can include a time axis. In one implementation, the timeaxis is a horizontal axis. The video representations (e.g., cells) canbe positioned in the EPG 240 based on time and can correspond to thetimeline 203 of the focus area 250. For example, the video “ShortProgram” may be scheduled to play at 8:00 pm on the ACME-FAM channel andthe left side of cell 206 for video “Short Program” is aligned with“8:00 pm” in the timeline 203. In another example, the video “The Big Br. . . ” may be scheduled to play at 8:15 pm on the ACME-FAM channel andthe left side of cell 207 for the video “The Big Br . . . ” is alignedin between “8:00 pm” and “8:30 pm” in the timeline 203. It should beunderstood that the current time is 8:00 pm for explanatory purposesregarding the schedule of videos in each of the EPGs discussed in thisdocument.

As depicted, due to the small screen size of a display, the overviewarea 257 includes cells (e.g., cells 206, 207, 208, 209, 210, 211) thatdisplay limited metadata relative to the expanded metadata beingdisplayed for a video in the focus area 250. The various types ofmetadata are described in greater detail below in conjunction with FIG.4. A subset of metadata is a limited set of metadata, which refers toincomplete metadata (e.g., incomplete title, incomplete start time,incomplete end time), truncated metadata, and a number of types ofmetadata less than the number of types of metadata in the focus area250. Expanded metadata can include metadata that is complete (e.g.,complete title) and additional types of metadata (e.g., description,statistics, ratings, thumbnail) that are not being displayed in theoverview area 257.

FIG. 3 depicts an example of selecting a media content item in anoverview area in an EPG for a focus area in the EPG and dynamicallyadjusting a timeline of the focus area based on the selected mediacontent item, in accordance with one implementation of the presentdisclosure. EPG 340A depicts a cell in the focus area 350A and cells inthe overview area 357A as a user selects a video from the overview area357A for the focus area 350A. For example, a user can select (e.g., tap)location 301 and swipe in a vertical direction (e.g., bottom-to-top) toscroll the cells in the overview area 357A upward towards the focus area350A. In one implementation, the swipe gesture is interpreted as aselection of the video (e.g., “Short Program”) that is being representedby the top most cell (e.g., cell 306A) in the overview area 357A that isscheduled next for streaming. In another implementation, the input forthe selection may be a user selecting a cell (e.g., cell 306A vialocation 301), dragging the selected cell (e.g., cell 306A) to the focusarea 350A, and releasing the dragged cell. In the overview area 357A inEPG 340A, the cell 306A for the selected “Short Program” video includesa limited set of metadata for the selected video. For example, cell 306Aincludes a title and a scheduled duration.

In response to the selection of the video, the cell 306A for theselected video is automatically moved to the focus area 350A. EPG 340Bis a dynamically adjusted version of EPG 340A and depicts the cell 306Bin the focus area 350B and cells in overview area 357B after cell 306Ahas moved to the focus area 350A.

There may be one or more conditions pertaining to the maximum timeinterval of the focus area. The one or more conditions may pertain towhether the scheduled duration for streaming the selected video is lessthan the maximum time interval, equal to the maximum time interval,and/or greater than the maximum time interval. In an example, thecondition may pertain to whether the scheduled duration for streamingthe selected video is greater than the maximum time, and it may bedetermined that the scheduled duration for streaming the selected videodoes not satisfy the condition when the scheduled duration is less orequal to than the maximum time interval for the focus area. In anotherexample, a condition may pertain to whether the scheduled duration forstreaming the selected video is greater or equal to than the maximumtime interval of the focus area, and it may be determined that thescheduled duration for streaming the selected video does not satisfy thecondition when the scheduled duration is less than the maximum timeinterval. Satisfaction or dissatisfaction of the one or more conditionsmay cause the timeline and/or the width of the focus area to beadjusted, as described in more detail below.

The timeline 303A (e.g., “8:00 pm-8:30 pm”) in focus area 350A ischanged to timeline 303B for focus area 350B. The adjustment of timeline303A to create timeline 303B can be based on the duration of theselected video “Short Program.” If the scheduled duration for streamingthe selected video (e.g., “Short Program”) does not satisfy a conditionpertaining to the maximum time interval of the focus area 350B (e.g.,the scheduled duration for streaming the selected video is less or equalto than the maximum time interval of the focus area 350B), the timeinterval for timeline 303B of focus area 350B is created to match thescheduled duration for the selected video. The beginning time and endtime for timeline 303B can match the scheduled start time and scheduledend time for the selected video. For example, the scheduled duration(e.g., 8:00 pm-8:15 pm) for streaming the selected video “Short Program”is less than a maximum time interval (e.g., 30-minutes) of the focusarea 350B, and the “8:00 pm-8:30 pm” timeline 303A in EPG 340A changesto “8:00 pm-8:15 pm” in timeline 303B in dynamically adjusted EPG 340B.If the scheduled duration for streaming the selected video satisfies acondition pertaining to the maximum time interval of the focus area 350B(e.g., the scheduled duration for streaming the selected video isgreater than the maximum time interval of the focus area 350B), the timeinterval for timeline 303B of focus area 350B is created to match themaximum time interval.

The subset of metadata (e.g., title, duration) in the cell 306A in thefocus area 350B is replaced with expanded metadata for the selected“Short Program” video, as depicted in cell 306B in focus area 350B. Forexample, the title and duration in cell 306A is replaced with a title,duration, description 360 (“This video includes content uploaded by userXYZ on Jan. 1, 2017.”), and sample 361, as depicted in cell 306B infocus area 350B. The sample 361 can be an image (e.g., thumbnail) or arendering of a short segment of the video. In some implementations, theexpanded metadata may be included in the cell 306A but may be obstructedand/or truncated due to the reduced size of the cell 306A, anddynamically expanded cell 306B in the focus area 350B may display theexpanded metadata. If the selected video is currently streaming, thenthe portion of the selected video that is currently streaming can beplayed as the sample in the focus area 350B. The sample can be played asan underlay of a display of the expanded metadata of the selected video.If the selected video is not currently streaming, an image of a frame ofthe selected video can be displayed in the focus area 350B as anunderlay of a display of the expanded metadata of the selected video inthe focus area 350B.

The height of the cell 306A that has been moved to the focus area 350Bcan be adjusted to a default height associated with the focus area 350B.The width of the cell 306A that has been moved to the focus area 350Bcan be adjusted based on the maximum time interval (e.g., 30-minutes) ofthe focus area 350B. Width 390 in focus area 350A depicts a maximumwidth, and width 395 in focus area 350B depicts a minimum width. Themaximum width of a focus area and minimum width of a focus area can bespecified in configuration data.

If the scheduled duration for streaming the selected video does notsatisfy a condition pertaining to the maximum time interval of the focusarea (e.g., the scheduled duration for streaming the selected video isless than the maximum time interval of the focus area), the width of thecell for the selected video in the focus area is set to a minimum width395. If the scheduled duration for streaming the selected videosatisfies a condition pertaining to the maximum time interval of thefocus area (e.g., the scheduled duration for streaming the selectedvideo is greater than or equal to the maximum time interval of the focusarea), the width of the cell for the selected video in the focus area isset to a maximum width 390. In this example, the scheduled duration(e.g., 8:00 pm-8:15 pm) for streaming the selected video “Short Program”is less than the maximum time interval (e.g., 30-minutes) of the focusarea 350B, and the width of cell 306B for the selected “Short Program”video in the focus area 350B is set to the minimum width 395.

The widths of other cells in the overview area 357B can be adjustedbased on the adjusted timeline 303B (e.g., “8:00 pm-8:15 pm”) of thefocus area 350B. For example, in EPG 340A, cell 309A for video “MysteryShow” has a width 329, which is scaled to the 30-minute time interval intimeline 303A (e.g., “8:00 pm-8:30 pm”) in focus area 350A. When the15-minute time interval for timeline 303B is created in adjusted EPG340B, the width 329B for cell 309B for video “Mystery Show” is scaled(e.g., expanded) according to the 15-minute time interval for timeline303B (e.g., “8:00 pm-8:15 pm”) in focus area 350B. Adjusting the widthsof the cells in overview area 357 is described in greater detail belowin conjunction with FIG. 7.

If the scheduled duration (e.g., “8:00 pm-8:15 pm”) for streaming theselected video (e.g., “Short Program”) is less than the maximum timeinterval (e.g., 30-minutes) of the focus area, the adjusted EPG 340B caninclude a preview area 355 that is adjacent to the focus area 350B. Thepreview area 355 includes a cell (e.g., cell 307B) representing anothervideo (e.g., “The Big Brown Fox”) that is scheduled to stream and playimmediately after the selected video (e.g., “Short Program”) on the samechannel as the selected video. If the EPG includes a preview area, thecell 307A for the next scheduled video “The Big Brown Fox” is moved tothe preview area 355 when the cell 306A for the selected video “ShortProgram” is moved to the focus area 350B. The width and height of thecell 307B in the preview area 355 can be adjusted based on a width andheight that are specified in the configuration data for the preview area355. The preview area 355 can have the same height as the focus area350B. In some implementations, the width of the preview area 355 is thedifference between the maximum width 390 and the minimum width 395associated with the focus area.

The preview area 355 can provide a hint of information for the nextvideo that is scheduled to be streamed and played on the same channel asthe selected video. The cell 307B in the preview area 355 can include atleast a portion of additional metadata (e.g., description) of the videothat is scheduled to be played next. The types of metadata to include inthe preview area 355 can be specified in the configuration data for thepreview area.

When the cell 306A for the selected video “Short Program” is moved tothe focus area 350B, the locations of the other cells (e.g.,308A,309A,311A) in the overview area 357A in EPG 340A are adjusted inEPG 340B. For example, the locations can be shifted up in position. Whenthe cell 306A for the selected video “Short Program” is moved to thefocus area 350B, one or more cells (e.g., cell 310) may not appear inthe adjusted EPG 340B, For example, cell 310 is not displayed in theadjusted EPG 340B.

FIG. 4 illustrates exemplary system architecture 400 for implementationsof the present disclosure. The system architecture 400 can include oneor more client devices 410, one or more video streaming servers 401, andone or more data stores 413 coupled to each other over one or morenetworks 405. The network 405 may be public networks (e.g., theInternet), private networks (e.g., a local area network (LAN) or widearea network (WAN)), or a combination thereof. The video streamingserver 401 can be hosted on machines, such as, and not limited to,rackmount servers, personal computers, desktop computers, media centers,or any combination of the above.

The video streaming server 401 can provide a video streaming service toone or more client devices 410. One client device is used as an examplethroughout this document. The video streaming server 401 can streamvideos to the client device 410. In one implementation, the videostreaming server 401 is part of a content sharing platform, such ascontent sharing platform 1020 described in greater detail below inconjunction with FIG. 10. In one implementation, the video streamingserver 301 is part of a content provider platform, such as contentprovider platform 1095 described in greater detail below in conjunctionwith FIG. 10.

The video streaming server 401 may host content, such as videos 427 andmetadata 425 for each of the videos 427. In one implementation, thevideos 427 and metadata 425 are stored on one or more data stores 413that are coupled to the video streaming server 401. A data store 413 canbe a persistent storage that is capable of storing data. As will beappreciated by those skilled in the art, in some implementations datastore 413 might be a network-attached file server, while in otherimplementations data store 413 might be some other type of persistentstorage such as an object-oriented database, a relational database, andso forth.

In one implementation, the video streaming server 401 streams the videos427 to the client device 410 according to a pre-defined schedule. In oneimplementation, the video streaming server 401 streams the videos 427 tothe client device 410 according to a playlist or a set of recommendedvideos that are dynamically created for a particular user in real-time.In one implementation, the video streaming server 401 creates a scheduleof videos to be streamed and stores schedule data 403 for the schedule.In one implementation, the schedule data 403 is stored in data store413.

The client device 410 can include an application 413 for playing mediaitems (e.g., videos 427). The application 413 may be, for example, a webbrowser that can access content served by the video streaming server401. In another example, the application 413 may be an application(e.g., mobile application, smart TV application, streaming deviceapplication) that can access content (e.g., videos 427) served by thevideo streaming server 401. The client device 410 can be a computingdevice such as a personal computer (PCs), laptop, mobile phone, smartphone, tablet computer, netbook computer, network-connected television,etc.

The client device 410 can receive a video stream for a video 427 fromthe video streaming server 401, and the application 413 on the clientdevice 410 can render the video on a display that is coupled to theclient device 410 according to the schedule data 403. In oneimplementation, the client device 410 receives a video identifier, suchas a universe resource identifier (URI) (e.g., universe resource locator(URL)), for the video 427 from the video streaming server 401, and theclient device 410 uses the URI to obtain the video 427 via an Internetconnection over network 405. The client device 410 receives portions ofthe video stream and renders the portions on a display as the portionsare received.

In one implementation, the video streaming server 401 creates a datapackage 454 that includes the videos 427 and the metadata 425 for eachof the videos 427, and sends the data package 454 to the client device410. In one implementation, the data package 454 includes the scheduledata 403 for the videos 427. In another implementation, the scheduledata 403 for the videos 427 is in a separate data package created by thevideo stream server 401 and/or is sent separately to the client device410.

The types of metadata 425 for each video 427 can include, for example, avideo identifier, a description, a creator or owner, a thumbnailrepresentation, a duration, statistics, a publish date, a languageassociated with a respective video, genre (e.g., comedy, drama, etc.),user rating data, critic rating data, film rating (e.g., Motion PictureAssociation of America (MPAA) film rating, TV Parental Guidelinesratings, etc.), channel associated with the video, one or more keywordsassociated with the video, and statistics. Examples of the statisticscan include a number of views, a number of likes, a number of dislikes,a number of shares, a number of playlists including the video, and anumber of comments.

The client device 410 can generate and display a user interface (UI) ona display coupled to the client device 410. The user interface can be agraphical user interface. The client device 410 can include an EPGcomponent 415 to create and display an electronic program guide (EPG) inthe UI. The EPG component 415 can communicate with or be a part of theapplication 413. The EPG can include a schedule for streaming andplaying the videos 427. The EPG component 415 can extract informationfrom the schedule data 403 and/or metadata 425 received from the videostreaming server 401, and populate a template to create the EPG in theUI.

The EPG component 415 can dynamically adjust the content being displayedin the EPG. The EPG component 415 can display an EPG that includes afocus area and one or more overview areas. For example, the UI maydisplay the EPG in FIGS. 1A-1C. A user can select a video in the EPG,and the EPG component 415 can dynamically change the content in thefocus area in the EPG to display expanded metadata for the selectedvideo in the focus area. For example, EPG component 415 may display atruncated title, a scheduled start time, and an incomplete scheduled endtime for a video being represented in an overview area. When a userselects the video in the overview area, the EPG component 415 candisplay, for example, the complete title, a complete scheduled starttime, a complete scheduled end time, and additional types of metadata,such as, a description, critics' rating, and users' rating for theselected video in the focus area of the EPG.

The client device 410 can store configuration data 417 for the EPG. Theconfiguration data 417 can specify the parameters for the focus area,the overview area(s), a preview area, channel identifiers, and thevisual representations (e.g., cells) for the videos in the EPG. Theconfiguration data 417 can be configurable and user-defined.

The parameters for the focus area can specify a maximum time interval(e.g., 30-minutes) for a timeline for the focus area, a time format, amaximum width, a minimum width, a height, a location (e.g., top portion,bottom portion, in between overview areas) in the UI for the focus area,and the types of metadata (e.g., title, start time, end time,description, users' ratings, critics' ratings, thumbnail) to be includedin the focus area. The parameters can also include, for each type ofmetadata in the focus area, a font, a font size, a font style, and alocation in the cell in the focus area.

The parameters for the overview area(s) can specify the number ofoverview areas for the EPG, a width for a respective overview area, aheight for a respective overview area, a location (e.g., top portion,bottom portion) in the UI for a respective overview area, and the typesof metadata (e.g., title, start time, end time) to be included in thecells of a respective overview area. The parameters for the visualrepresentations (e.g., cells) in a respective overview area can specifya height for each cell, and, for each type of metadata in a cell, afont, a font size, a font style, and a location in the cell in therespective overview area.

The parameters for the channel identifiers can specify whether todisplay an image (e.g., logo) and/or a string for a channel identifier,the dimensions (e.g., height, width) of the channel identifiers, and thelocations in the EPG for the channel identifiers.

The parameters for the preview area can specify whether to include apreview area in a focus area, a width, a height, a location (e.g., topportion, bottom portion, in between overview areas) in the UI for thepreview area, and the types of metadata to be included in the previewarea. The parameters can also include, for each type of metadata in thepreview area, a font, a font size, a font style, and a location in thecell in the preview area. The preview area is described in greaterdetail below in conjunction with FIG. 5 and FIG. 6.

FIG. 5 depicts a flow diagram of aspects of a method 500 for dynamicallyadjusting an electronic program guide, in accordance with oneimplementation of the present disclosure. The method 500 is performed byprocessing logic that may comprise hardware (circuitry, dedicated logic,etc.), software (such as is run on a general purpose computer system ora dedicated machine), or a combination of both. In one implementation,the method 500 is performed by an EPG component 415 in a client device410 of FIG. 4. In one implementation, a processing device of a clientcomputing device performs method 500.

At block 510, the processing device receives metadata for media contentitems. The metadata can be received from a server (e.g., video streamingserver 401 in FIG. 4). In one implementation, the media content items(e.g., videos) are scheduled to be streamed and played according to apre-defined schedule. In another implementation, the media content itemsare scheduled to be streamed and played according to a playlist orrecommendations created for a particular user. In one implementation,the media content items can be dynamically selected in real-time for aparticular user. The metadata can include, for each media content item,a scheduled duration for streaming a respective media content item. Thescheduled duration can be defined by a scheduled start time and end timefor a respective media content item. The metadata for each media contentitem can further include, for example, a video identifier, adescription, a creator or owner, a thumbnail representation, a duration,statistics, a publish date, a language associated with a respectivevideo, genre (e.g., comedy, drama, etc.), user rating data, criticrating data, film rating, channel associated with the video, one or morekeywords associated with the video, and statistics. Examples of thestatistics can include a number of views, a number of likes, a number ofdislikes, a number of shares, a number of playlists including the video,and a number of comments.

At block 520, the processing device displays cells for the media contentitems in an overview area in an EPG in a user interface. The cells inthe overview area include a limited set of metadata for a respectivemedia content item. For example, the limited set of metadata may includea truncated title and/or a truncated scheduled duration. The processingdevice can extract metadata items from the metadata and populate atemplate to display the limited sets of metadata for the media contentitems in the cells in the overview area in the EPG.

At block 530, the processing device receives, via the EPG in the UI,input of a selection of one of the media content items. The selectedmedia content item can be one of the videos in the overview area of theEPG or a video in a preview area in the EPG. A preview area is describedin greater detail below in conjunction with FIG. 6. In one example, theinput is a selection of a cell of a media item. In another example, theinput is a swipe gesture to scroll the content of the overview area or apreview area. In another example, the input is a select and dragoperation of a cell of a media content item to a focus area in the EPG.

At block 540, in response to the input selection, the processing devicemoves a cell having the limited set of metadata for the selected mediacontent item to the focus area in the EPG. At block 550, the processingdevice determines that a scheduled duration for streaming the selectedmedia content item does not satisfy a condition pertaining to a maximumtime interval for the focus area. The processing device can determinethe scheduled duration for the selected media content item, for example,by extracting the scheduled duration and/or the scheduled start time andend time for the selected media content item from the received metadata.The processing device can compare the scheduled duration to the maximumtime interval for the focus area, for example, that is stored inconfiguration data.

At block 560, the processing device adjusts a timeline of the focus areabased on the scheduled duration for streaming the selected media contentitem. When the scheduled duration is less than or equal to the maximumtime interval of the focus area, the processing device can set the timeinterval for timeline to match the scheduled duration for the selectedmedia content item. The processing device can set the beginning time andend time for timeline to match the scheduled start time and scheduledend time for the selected media content item.

The processing device can also adjust a width of the cell for theselected media content item in the focus area to match a maximum widthparameter or a minimum width parameter of the focus area to enabledisplaying expanded metadata in the cell in the focus area. The width ofthe focus area can be larger than the width of the cell for the selectedmedia content item in the overview area. The processing device canadjust (e.g., expand) a height of the cell for the selected mediacontent item in the focus area to match a height of the focus area toenable displaying additional metadata in the cell in the focus area. Theheight of the focus area can be larger than the height of the cell forthe selected media content item in the overview area. The processingdevice can adjust the widths of the remaining cells in the overview areabased on the adjusted timeline of the focus area, as described ingreater detail below in conjunction with FIG. 7.

At block 570, the processing device replaces the subset of metadata inthe cell in the focus area with expanded metadata for the selected mediacontent item. For example, the expanded metadata can include a completetitle for the selected media content item. The expanded metadata caninclude additional types of metadata, such as, and not limited to adescription, statistics, users' reviews, critics' reviews, users'ratings, critics' rating, publication data, content provider, contentowner, genre, thumbnail, cast, etc.

In one implementation, the processing device determines whether theselected media content item is currently streaming according to theschedule. If the selected media content item is currently streaming, theprocessing device can play a sample of the selected media content itemin the cell in the focus area. The sample can played for a pre-definedperiod of time specified in configuration data. The sample can be playedas an underlay of the display of the expanded metadata of the selectedmedia content item in the focus area. If the selected media content itemis not currently streaming, the processing device can display an imageof a frame of the selected media content item as an underlay of thedisplay of the expanded metadata of the selected media content item inthe focus area. The image can be included in the metadata received fromthe video streaming server.

FIG. 6 depicts an example of selecting a media content item in a previewarea in an EPG for a focus area in the EPG and dynamically adjusting atimeline of the focus area based on the selected media content item, inaccordance with one implementation of the present disclosure. EPG 640Adepicts a cell in the focus area 650A, a cell in the preview area 655,and cells in the overview area 657A as a user selects a media contentitem (e.g., video) from preview area 655 for focus area 650A. Forexample, a user can select (e.g., tap) location 601 (or any cell in theEPG 640A) and swipe in a horizontal direction (e.g., right-to-left)towards the focus area 650A. In one implementation, an EPG component(e.g., EPG component 315 in FIG. 3) in a client device, interprets theswipe gesture as a selection of the video (e.g., “The Big Brown Fox”)that is being represented by the cell 654A in the preview area 655. Inanother implementation, the input for the selection may be a userselecting the cell 654A in the preview area 655, dragging the selectedcell 654A to the focus area 650A, and releasing the dragged cell. In thepreview area 655, the cell 654A for the selected “The Big Brown Fox”video displays a portion of a set of expanded metadata for the selectedvideo. For example, the expanded metadata in cell 654A includes aportion of the title, a scheduled start time, a scheduled end time, anda description.

The EPG component can automatically move the selected cell 654A from thepreview area 655 to the focus area 650A. EPG 640B is a dynamicallyadjusted version of EPG 640A and depicts the cell in the focus area 650Band cells in the overview area 657B after a user has selected a video(e.g., “The Big Brown Fox”) from the preview area 655 for the focus area650B.

The EPG component can determine whether a scheduled duration forstreaming the selected video is less or equal to than the maximum timeinterval of the focus area, and can create a timeline 603B for the focusarea 650B based on the determination. For example, the EPG component maydetermine that the scheduled duration (e.g., 8:15 pm-8:45 pm) forstreaming the selected video “The Big Brown Fox” is equal to a maximumtime interval (e.g., 30-minutes) of the focus area 650B. If thescheduled duration is greater than the maximum time interval, thetimeline 503B of focus area 550B is created to match the maximum timeinterval. The beginning of the timeline 603B can match the scheduledstart time for the selected video, and the end of the timeline 603B canbe determined based on the maximum time interval (e.g., 30-minutes). Forexample, the EPG component changes the “8:00 pm-8:15 pm” timeline 603Ain EPG 640A to “8:15 pm-8:45 pm” in timeline 603B in the dynamicallyadjusted EPG 640B.

In one implementation, if the height of the selected cell 654A isdifferent from the height of the focus area 650A, the EPG component canadjust the height of cell 654A to match a default height associated withthe focus area 650A. The EPG component can also adjust a width of theselected cell 654A based on the maximum time interval (e.g., 30-minutes)of the focus area 650B. If the scheduled duration for streaming theselected video is greater than or equal to the maximum time interval ofthe focus area, the width of the cell 654B for the selected video in thefocus area 650B is set to a maximum width (e.g., maximum width 590 inFIG. 5). In this example, the scheduled duration (e.g., 8:15 pm-8:45 pm)for streaming the selected video “The Big Brown Fox” is equal to themaximum time interval (e.g., 30-minutes) of the focus area 650B, and thewidth of cell 654B for the selected video in the focus area 650B is setto the maximum width.

With the expanded width and/or height of the focus area 650B, the EPGcomponent can display more of the expanded metadata (e.g., title,scheduled start time, scheduled end time, description) in the cell 654B.For example, in cell 654B in focus area 650B, a complete title isdisplayed, a complete scheduled start time and scheduled end time aredisplayed, a complete description is displayed, and a sample 604 isdisplayed. The sample 604 can be an image (e.g., thumbnail) or arendering of a short segment of the selected video. The EPG componentcan determine whether the selected video is currently streaming, forexample, by comparing the scheduled duration for the video to thecurrent time. If the selected video is currently streaming, the EPGcomponent can play the portion of the selected video that is currentlystreaming as the sample in the focus area. The EPG component can playthe sample as an underlay of a display of the expanded metadata of theselected video. If the selected video is currently streaming, the EPGcomponent can display an image of a frame of the selected video in thefocus area 650B as an underlay of a display of the expanded metadata ofthe selected video in the focus area 650B.

The EPG component can also adjust the widths of other cells in theoverview area 657B based on the adjusted timeline 603B (e.g., “8:15pm-8:45 pm”) of the focus area 650B. For example, in EPG 640A, cell 609Afor video “Mystery Show” has a width 629A, which is scaled to timeline603A (e.g., “8:00 pm-8:15 pm”) in focus area 650A. When timeline 603B iscreated in adjusted EPG 640B, the cell 609B for video “Mystery Show” hasan adjusted width 629B, which is scaled (e.g., reduced) according totimeline 603B (e.g., “8:15 pm-8:45 pm”) and the beginning time in thetimeline 603B in focus area 650B.

When the cell 654A for the selected video “The Big Brown” is moved tothe focus area 650B, cells for new video representations can bedisplayed in the overview area 657B in EPG 5640B. For example, the cells610,660,663,665,669 can include representations for videos that were notpreviously represented in EPG 640A. The new cells can include a limitedset of metadata for a respective video.

FIG. 7 illustrates an example of widths of cells in a dynamicallyadjustable EPG 740, in accordance with one implementation of thedisclosure. The widths of the cells in the EPG 740, and the timeline 703of the focus area 750 can be dynamically adjusted. The widths of thecells in the overview area 757 can be dynamically defined based on (i)the time interval of the current timeline 703 of the focus area 750,(ii) the scheduled duration for streaming the respective video beingrepresented by a respective cell in the overview area 757, and (iii) thescheduled start time and scheduled end time for the video beingrepresented in the overview area 757.

In one implementation, when (i) the scheduled duration of a video beingrepresented by a cell in the overview area 757 is equal to the timeinterval for the timeline 703 of the focus area 750, and (ii) thescheduled start time and end time of the video in the overview 757 canbe mapped to the timeline 703 of the focus area 750, then the width ofthe cell of the video in the overview area 757 can be dynamicallyadjusted to match the width 721 of the focus area 750. For example, thetimeline 703 is currently a 30-minute interval. The video“Do-it-yourself Program” represented by cell 711 may have a scheduledduration of 30-minutes (e.g., 8:00 pm-8:30 pm), which is equal to the30-minute time interval for timeline 703 of the focus area 750. Thescheduled start time “8:00 pm” and the scheduled end time “8:30 pm” canbe mapped to the timeline 703 of the focus area 750. Thus, the width 733of cell 711 is adjusted to match the width 721 of the focus area 750.

In one implementation, when (i) the scheduled duration of a video beingrepresented by a cell in the overview area 757 is equal to the timeinterval for the timeline 703 of the focus area 750, and (ii) thescheduled start time and end time of the video in the overview 757cannot be mapped to the timeline 703 of the focus area 750, then thewidth of the cell of the video in the overview area 757 can bedynamically adjusted to be less than the width 721 of the focus area750. For example, the video “The Big Br . . . ” represented by cell 702may have a scheduled duration of 30-minutes (e.g., 8:15 pm-8:45 pm),which is equal to the 30-minute time interval for timeline 703 of thefocus area 750. The scheduled start time “8:15 pm” can be mapped to thetimeline 703 of the focus area 750. However, the scheduled end time“8:45 pm” cannot be mapped to the timeline 703 of the focus area 750.Thus, the width 724 of cell 703 is adjusted to be less than the width721 of the focus area 750.

In one implementation, when the scheduled duration of a video beingrepresented by a cell in the overview area 757 is greater than the timeinterval for the timeline 703 of the focus area 750, then the width ofthe cell of the video in the overview area 757 can be dynamicallyadjusted to match the width 721 of the focus area 750. For example, thevideo “Medical Show” represented by cell 708 may have a scheduledduration of one hour (e.g., 8:00 pm-9:00 pm), which is greater than the30-minute time interval of timeline 703. The width 727 of cell 708 isadjusted to match the width 721 of the focus area 750.

In one implementation, when (i) a scheduled duration of a video beingrepresented by a cell in overview area 757 is less than the timeinterval for the timeline 703 of the focus area 750, and the scheduledstart time and end time of the video in the overview 757 can be mappedto the timeline 703 of the focus area 750, then the width of the cell ofvideo in the overview 757 can be scaled to correspond to the width 721of the focus area 750. For example, the video “Short Program”represented by cell 706 has a scheduled duration of 15 minutes, which isless than the 30-minute time interval for the timeline 703 of the focusarea 750. Since the scheduled start time “8:00 pm” and end time “8:15pm” for “Short Program” can be mapped to the timeline 703 of the focusarea 750, the width 723 can be scaled based on the width 721 of thefocus area 750. For example, the width 723 of the cell 706 for video“Short Program” can be set to half of the width 721 of timeline 703. Inanother example, the video “Mystery Show” represented by cell 709 has ascheduled duration of 20 minutes, which is less than the 30-minute timeinterval for the timeline 103 of the focus area 750. Since the scheduledstart time “8:00 pm” and end time “8:20 pm” for “Mystery Show” can bemapped to the timeline 703 of the focus area 750, the width 729 can bescaled based on the width 721 of the focus area 705. For example, thewidth 729 of the cell 709 for video “Mystery Show” is set to two thirdsof the width 729 of timeline 703.

In one implementation, when a scheduled duration of a video is less thanthe time interval for the timeline 703 of the focus area 750, and thescheduled start time and end time of the video cannot be mapped to thetimeline 703 of the focus area 750, the width of the cell of video canbe less than the width 721 of the focus area 750. For example, the video“Nature Show” represented by cell 710 may have a scheduled duration of20 minutes (e.g., 8:20 pm-8:40 pm), which is less than the 30-minutetime interval for the timeline 703 of the focus area 150A. “Nature Show”may have a scheduled start time “8:20 pm” that can be mapped to thetimeline 703 of the focus area 750. However, the scheduled end time“8:40 pm” cannot be mapped to the timeline 703 of the focus area 750.Thus, the width 731 of cell 710 for the video “Nature Show” is adjustedto be less than the width 721 of the focus area 750.

FIG. 8 depicts an example of an EPG having multiple overview areas, inaccordance with one implementation of the present disclosure. EPG 840Adepicts focus area 850A and overview areas 830A,860A. In EPG 840A, thefocus area 850A displays expanded metadata for the video “Standup ComedyShow”. For example, a title 881, scheduled start time and scheduled endtime 882, description 883, and sample 884 are displayed in focus area850A.

When a user selects location 801 and swipes in a vertical directionupwards towards the focus area 850A, the EPG component automaticallymoves the cell 806A for the selected video to the focus area 850A. EPG840B is a dynamically adjusted version of EPG 840A in response to a userselecting the video “Short Program”.

When cell 806A is moved to the focus area, the EPG component can movethe cell 805A for “Standup Comedy Show” to overview area 830B. The cell805B for the video “Standup Comedy Show” in overview area 830B can bereduced in size (height reduced) and can display a limited set ofmetadata (e.g., title, scheduled start time, scheduled end time).

FIG. 9 depicts an example of an EPG transitioning from having oneoverview area to multiple overview areas, in accordance with oneimplementation of the present disclosure. EPG 900A depicts focus area910A and one overview area 920A. In EPG 900A, the focus area 910Adisplays expanded metadata for the video “Funny Movie”. Just oneoverview area 906A may be displayed in the EPG 900A based on the videosincluded in a playlist. For example, the playlist may include a defaultorder of videos where “Funny Movie” is the first video in the playlistand there are no other videos above “Funny Movie” in the playlist. Assuch, the EPG 900A may not display another overview area above the focusarea 910A. That is, in one implementation, when the video selected inthe focus area 910A is the first video in the playlist, just oneoverview area 920A may be displayed below the focus area 910.

When a user selects location 901 and swipes in a vertical directionupwards towards the focus area 910A, the EPG component automaticallymoves the cell 906A for the selected video to the focus area 910A. EPG900B is a dynamically adjusted version of EPG 900A in response to a userselecting the video “Standup Comedy Show”. Also, when cell 906A is movedto the focus area 910B, the EPG component can move the cell 905A for“Funny Movie” to another overview area 930B above the focus area 910B.The cell 905B for the video “Funny Movie” in overview area 930B can bereduced in size (height reduced) and can display a limited set ofmetadata (e.g., title, scheduled start time, scheduled end time). Asdepicted, the dynamically adjusted EPG 900B includes two overview areas930B and 920B. Overview area 930B is located above the focus area 910Band overview area 920B is located below the focus area 910B. Displayingthe overview area 930B with a video (“Funny Movie”) above the focus area910B may provide an indication to the user that there are additionalvideos above the video (“Standup Comedy Show”) currently selected in thefocus area 910B.

FIG. 10 illustrates an example of system architecture 1000 fordynamically adjusting an electronic program guide, in accordance withone implementation of the disclosure. The system architecture 1000includes user devices 1010A through 1010Z, one or more networks 1005,one or more data stores 1006, one or more servers 1030, and one or moreplatforms (e.g., content sharing platform 1020, recommendation platform1057, advertisement platform 1065, mobile platform 1050, social networkplatform 1060, search platform 1045, content provider platform 1095, andcollaboration platform 1055). The platforms can be one or more computingdevices (such as a rackmount server, a router computer, a servercomputer, a personal computer, a mainframe computer, a laptop computer,a tablet computer, a desktop computer, etc.), data stores (e.g., harddisks, memories, and databases), networks, software components, and/orhardware components.

The one or more networks 1005 can include one or more public networks(e.g., the Internet), one or more private networks (e.g., a local areanetwork (LAN) or one or more wide area networks (WAN)), one or morewired networks (e.g., Ethernet network), one or more wireless networks(e.g., an 802.11 network or a Wi-Fi network), one or more cellularnetworks (e.g., a Long Term Evolution (LTE) network), routers, hubs,switches, server computers, and/or a combination thereof. In oneimplementation, some components of architecture 1000 are not directlyconnected to each other. In one implementation, architecture 1000includes separate networks 1005.

The one or more data stores 1006 can be memory (e.g., random accessmemory), cache, drives (e.g., hard drive), flash drives, databasesystems, or another type of component or device capable of storing data.The one or more data stores 1006 can include multiple storage components(e.g., multiple drives or multiple databases) that may also spanmultiple computing devices (e.g., multiple server computers). The datastores 1006 can be persistent storage that are capable of storing data.A persistent storage can be a local storage unit or a remote storageunit. Persistent storage can be a magnetic storage unit, optical storageunit, solid state storage unit, electronic storage units (main memory),or similar storage unit. Persistent storage can be a monolithic deviceor a distributed set of devices. A ‘set’, as used herein, refers to anypositive whole number of items.

Content items 1021 (media content items) can be stored in one or moredata stores 1006. The data stores 1006 can be part of one or moreplatforms. Examples of a content item 1021 can include, and are notlimited to, digital video, digital movies, animated images, digitalphotos, digital music, digital audio, website content, social mediaupdates, electronic books (ebooks), electronic magazines, digitalnewspapers, digital audio books, electronic journals, web blogs, realsimple syndication (RSS) feeds, electronic comic books, softwareapplications, etc. Content item 1021 is also referred to as a mediaitem. For brevity and simplicity, an online video (also hereinafterreferred to as a video) is used as an example of a content item 1021throughout this document.

The content items 1021 can be provided by content providers. A contentprovider can be a user, a company, an organization, etc. A contentprovider can provide contents items 1021 that are video advertisements.A content provider that provides video advertisements is hereinafterreferred to as an advertiser. For example, a content item 1021 may be avideo advertisement for a car provided by a car advertiser. A serviceprovider can charge an advertiser a fee, for example, when the serviceprovider provides the advertisements on user devices 1010A-1010Z to beviewed by users.

The user devices 1010A-1010Z can include devices, such as, smart phones,cellular telephones, personal digital assistants (PDAs), portable mediaplayers, netbooks, laptop computers, electronic book readers, tabletcomputers, desktop computers, set-top boxes, gaming consoles,televisions, and the like. The user devices 1010A-1010Z can be clientdevices (e.g., client device 410 in FIG. 4).

The individual user devices 1010A-1010Z can include a communicationapplication 1015. A content item 1021 can be consumed via acommunication application 1015, the Internet, etc. As used herein,“media,” “media item,” “online media item,” “digital media,” “digitalmedia item,” “content,” and “content item” can include an electronicfile that can be executed or loaded using software, firmware or hardwareconfigured to present a content item. In one implementation, thecommunication applications 1015 may be applications that allow users tocompose, send, and receive content items 1021 (e.g., videos) over aplatform (e.g., content sharing platform 1020, recommendation platform1057, advertisement platform 1065, mobile platform 1050, social networkplatform 1060, search platform 1045, collaboration platform 1055, andcontent provider platform 1095) and/or a combination of platforms and/ornetworks.

For example, the communication application 1015 may be a socialnetworking application, video sharing application, video streamingapplication, video on demand application, photo sharing application,chat application, mobile application of a content provider or anycombination of such applications. The communication application 1015 ina user device can render, display, and/or present one or more contentitems 1021 (e.g., videos) to one or more users. For example, thecommunication application 1015 can provide one or more user interfaces(e.g., graphical user interfaces) to be rendered in a display of a userdevice for sending, receiving and/or playing videos.

In one implementation, the individual user devices 1010A-1010Z includesa content viewer 1013 (e.g., application 413 in FIG. 4) to render,display, and/or present content items 1021 (e.g., videos) to one or moreusers. In one implementation, a content viewer 1013 is embedded in anapplication (e.g., communication application 1015). In anotherimplementation, the content viewer 1013 may be a standalone application(e.g., mobile application, desktop application, gaming consoleapplication, television application, etc.), such as communicationapplication 1015, that allows users to consume (e.g., play, display)content items 1021, such as videos, images, documents (e.g., web pages),etc. For example, the content viewer 1013 may be a web browser that canaccess, retrieve, present, and/or navigate content (e.g., web pages suchas Hyper Text Markup Language (HTML) pages, digital media items, etc.)served by a web server of a platform. In another example, the contentviewer 1013 may display an embedded media player (e.g., a Flash® playeror an HTML5 player) that is embedded in a document (e.g., a web page).

The content viewers 1013 can be provided to the user devices 1010A-1010Zby a server 1030 and/or a platform. For example, the content viewers1013 may be embedded media players that are embedded in documents (e.g.,web pages) provided by the content sharing platform 1020. In anotherexample, the content viewers 1013 may be applications that aredownloaded from a platform (e.g., content sharing platform 1020,recommendation platform 1057, advertisement platform 1065, mobileplatform 1050, social network platform 1060, search platform 1045,collaboration platform 1055, and content provider platform 1095). Inanother example, the content viewers 1013 may be standalone applicationsthat are pre-installed on the user devices 1010A-1010Z.

In one implementation, the individual user devices 1010A-1010Z includesan EPG component 1014 (e.g., EPG component 415 in FIG. 4) to dynamicallyadjust an electronic program guide.

The content provider platform 1095 can provide a service and the contentprovider can be the service provider. For example, a content providermay be a video streaming service provider that provides a mediastreaming service via a communication application 1015 for users to playvideos, TV shows, video clips, audio, audio clips, and movies, on userdevices 1010A-1010Z via the content provider platform 1095.

The social network platform 1060 can provide an online social networkingservice. The social network platform 1060 can provide a communicationapplication 1015 for users to create profiles and perform activity withtheir profile. Activity can include updating a profiling, exchangingmessages with other users, posting status updates, photos, videos, etc.to share with other users, evaluating (e.g., like, comment, share,recommend) status updates, photos, videos, etc., and receivingnotifications of other users activity.

The mobile platform 1050 can be and/or include one or more computingdevices (e.g., servers), data stores, networks (e.g., phone network,cellular network, local area network, the Internet, and/or a combinationof networks), software components, and/or hardware components that canbe used to allow users to connect to, share information, and/or interactwith each other using one or more mobile devices (e.g., phones, tabletcomputers, laptop computers, wearable computing devices, etc.) and/orany other suitable device. For example, the mobile platform 1050 mayenable telephony communication, Short Message Service (SMS) messaging,Multimedia Message Service (MMS) messaging, text chat, and/or any othercommunication between users. The mobile platform 1050 can support usercommunications via video messaging, video chat, and/or videoconferences.

The collaboration platform 1055 can enable collaboration services, suchas video chat, video messaging, and audio and/or videoconferences (e.g.,among the users of devices 1010A-1010Z) using, for example, streamingvideo or voice over IP (VoIP) technologies, cellular technologies, LANand/or WAN technologies, and may be used for personal, entertainment,business, educational or academically oriented interactions.

The recommendation platform 1057 can be one or more computing devices(such as a rackmount server, a router computer, a server computer, apersonal computer, a mainframe computer, a laptop computer, a tabletcomputer, a desktop computer, etc.), data stores (e.g., hard disks,memories, databases), networks, software components, and/or hardwarecomponents that can be used to generate and provide contentrecommendations (e.g., articles, videos, posts, news, games, etc.). Therecommendation platform 1057 can include one or more recommendationservers.

The search platform 1045 can be one or more computing devices (such as arackmount server, a router computer, a server computer, a personalcomputer, a mainframe computer, a laptop computer, a tablet computer, adesktop computer, etc.), data stores (e.g., hard disks, memories,databases), networks, software components, and/or hardware componentsthat can be used to allow users to query the one or more data stores 206and/or one or more platforms and receive query results.

The advertisement platform 1065 can be one or more computing devices(such as a rackmount server, a router computer, a server computer, apersonal computer, a mainframe computer, a laptop computer, a tabletcomputer, a desktop computer, etc.), data stores (e.g., hard disks,memories, databases), networks, software components, and/or hardwarecomponents that can be used provide video advertisements.

The content sharing platform 1020 can be one or more computing devices(such as a rackmount server, a router computer, a server computer, apersonal computer, a mainframe computer, a laptop computer, a tabletcomputer, a desktop computer, etc.), data stores (e.g., hard disks,memories, databases), networks, software components, and/or hardwarecomponents that can be used to provide one or more users with access tocontent items 1021 and/or provide the content items 1021 to one or moreusers. For example, the content sharing platform 1020 may allow users toconsume, upload, download, and/or search for content items 1021. Inanother example, the content sharing platform 1020 may allow users toevaluate content items 1021, such as, approve of (“like”), dislike,recommend, share, rate, and/or comment on content items 1021. In anotherexample, the content sharing platform 1020 may allow users to editcontent items 1021. The content sharing platform 1020 can also include awebsite (e.g., one or more webpages) and/or one or more applications(e.g., communication applications 1015) that may be used to provide oneor more users with access to the content items 1021, for example, viauser devices 1010A-1010Z. Content sharing platform 1020 can include anytype of content delivery network providing access to content items 1021.

The content sharing platform 1020 can include multiple channels (e.g.,Channel A 1025 through Channel Z 1029). A channel can be data contentavailable from a common source or data content having a common topic ortheme. The data content can be digital content chosen by a user, digitalcontent made available by a user, digital content uploaded by a user,digital content chosen by a content provider, digital content chosen bya broadcaster, etc. For example, Channel A 1025 may include videos Y andZ. A channel can be associated with an owner, who is a user that canperform actions on the channel. The data content can be one or morecontent items 1021. Although channels are described as oneimplementation of a content sharing platform, implementations of thedisclosure are not limited to content sharing platforms that providecontent items 1021 via a channel model.

For simplicity of explanation, the methods of this disclosure aredepicted and described as a series of acts. However, acts in accordancewith this disclosure can occur in various orders and/or concurrently,and with other acts not presented and described herein. Furthermore, notall illustrated acts may be required to implement the methods inaccordance with the disclosed subject matter. In addition, those skilledin the art will understand and appreciate that the methods couldalternatively be represented as a series of interrelated states via astate diagram or events. Additionally, it should be appreciated that themethods disclosed in this specification are capable of being stored onan article of manufacture to facilitate transporting and transferringsuch methods to computing devices. The term “article of manufacture,” asused herein, is intended to encompass a computer program accessible fromany computer-readable device or storage media.

FIG. 11 illustrates a diagram of a machine in an example form of acomputer system 1100 within which a set of instructions, for causing themachine to perform any one or more of the methodologies discussedherein, can be executed, in accordance with one implementation of thepresent disclosure. The computer system 1100 can be client device 401 inFIG. 4. The machine can operate in the capacity of a client machine inclient-server network environment, or as a peer machine in apeer-to-peer (or distributed) network environment. The machine can be apersonal computer (PC), a tablet PC, a set-top box (STB), a PersonalDigital Assistant (PDA), a cellular telephone, a web appliance, aserver, a network router, switch or bridge, or any machine capable ofexecuting a set of instructions (sequential or otherwise) that specifyactions to be taken by that machine. Further, while only a singlemachine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein.

The example computer system 1100 includes a processing device(processor) 1102, a main memory 1104 (e.g., read-only memory (ROM),flash memory, dynamic random access memory (DRAM) such as synchronousDRAM (SDRAM), double data rate (DDR SDRAM), or DRAM (RDRAM), etc.), astatic memory 1106 (e.g., flash memory, static random access memory(SRAM), etc.), and a data storage device 1118, which communicate witheach other via a bus 1130.

Processor (processing device) 1102 represents one or moregeneral-purpose processing devices such as a microprocessor, centralprocessing unit, or the like. More particularly, the processor 1102 canbe a complex instruction set computing (CISC) microprocessor, reducedinstruction set computing (RISC) microprocessor, very long instructionword (VLIW) microprocessor, or a processor implementing otherinstruction sets or processors implementing a combination of instructionsets. The processor 1102 can also be one or more special-purposeprocessing devices such as an application specific integrated circuit(ASIC), a field programmable gate array (FPGA), a digital signalprocessor (DSP), network processor, or the like. The processor 1102 isconfigured to execute instructions 1122 for performing the operationsand steps discussed herein.

The computer system 1100 can further include a network interface device1108. The computer system 1100 also can include a video display unit1110 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)),an input device 1112 (e.g., a keyboard, and alphanumeric keyboard, amotion sensing input device, touch screen), a cursor control device 1114(e.g., a mouse), and a signal generation device 1116 (e.g., a speaker).

The data storage device 1118 can include a non-transitorymachine-readable storage medium 1128 (also computer-readable storagemedium) on which is stored one or more sets of instructions 1122 (e.g.,software) embodying any one or more of the methodologies or functionsdescribed herein. The instructions 1122 can also reside, completely orat least partially, within the main memory 1104 and/or within theprocessor 1102 during execution thereof by the computer system 1100, themain memory 1104 and the processor 1102 also constitutingmachine-readable storage media. The instructions 1122 can further betransmitted or received over a network 1120 via the network interfacedevice 1108.

In one implementation, the instructions 1122 include instructions for anelectronic program guide component 1105 (e.g., electronic program guidecomponent 415 in FIG. 4) and/or a software library containing methodsthat call the electronic program guide component. While thecomputer-readable storage medium 1128 (machine-readable storage medium)is shown in an exemplary implementation to be a single medium, the terms“computer-readable storage medium” and “machine-readable storage medium”should be taken to include a single medium or multiple media (e.g., acentralized or distributed database, and/or associated caches andservers) that store the one or more sets of instructions. The terms“computer-readable storage medium” and “machine-readable storage medium”shall also be taken to include any medium that is capable of storing,encoding or carrying a set of instructions for execution by the machineand that cause the machine to perform any one or more of themethodologies of the present disclosure. The terms “computer-readablestorage medium” and “machine-readable storage medium” shall accordinglybe taken to include, but not be limited to, solid-state memories,optical media, and magnetic media.

In the foregoing description, numerous details are set forth. It will beapparent, however, to one of ordinary skill in the art having thebenefit of this disclosure, that the present disclosure can be practicedwithout these specific details. In some instances, well-known structuresand devices are shown in block diagram form, rather than in detail, inorder to avoid obscuring the present disclosure.

Some portions of the detailed description have been presented in termsof algorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, for reasons of common usage, to refer tothese signals as bits, values, elements, symbols, characters, terms,numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “receiving”, “displaying”, “moving”, “adjusting”,“replacing”, “determining”, “playing”, or the like, refer to the actionsand processes of a computer system, or similar electronic computingdevice, that manipulates and transforms data represented as physical(e.g., electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

For simplicity of explanation, the methods are depicted and describedherein as a series of acts. However, acts in accordance with thisdisclosure can occur in various orders and/or concurrently, and withother acts not presented and described herein. Furthermore, not allillustrated acts can be required to implement the methods in accordancewith the disclosed subject matter. In addition, those skilled in the artwill understand and appreciate that the methods could alternatively berepresented as a series of interrelated states via a state diagram orevents. Additionally, it should be appreciated that the methodsdisclosed in this specification are capable of being stored on anarticle of manufacture to facilitate transporting and transferring suchmethods to computing devices. The term article of manufacture, as usedherein, is intended to encompass a computer program accessible from anycomputer-readable device or storage media.

Certain implementations of the present disclosure also relate to anapparatus for performing the operations herein. This apparatus can beconstructed for the intended purposes, or it can comprise a generalpurpose computer selectively activated or reconfigured by a computerprogram stored in the computer. Such a computer program can be stored ina computer readable storage medium, such as, but not limited to, anytype of disk including floppy disks, optical disks, CD-ROMs, andmagnetic-optical disks, read-only memories (ROMs), random accessmemories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any typeof media suitable for storing electronic instructions.

Reference throughout this specification to “one implementation” or “animplementation” means that a particular feature, structure, orcharacteristic described in connection with the implementation isincluded in at least one implementation. Thus, the appearances of thephrase “in one implementation” or “in an implementation” in variousplaces throughout this specification are not necessarily all referringto the same implementation. In addition, the term “or” is intended tomean an inclusive “or” rather than an exclusive “or.” Moreover, thewords “example” or “exemplary” are used herein to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “exemplary” is not necessarily to be construed as preferred oradvantageous over other aspects or designs. Rather, use of the words“example” or “exemplary” is intended to present concepts in a concretefashion.

It is to be understood that the above description is intended to beillustrative, and not restrictive. Many other implementations will beapparent to those of skill in the art upon reading and understanding theabove description. The scope of the disclosure should, therefore, bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

In situations in which the systems discussed here collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether programs orfeatures collect user information (e.g., information about a user'ssocial network, social actions or activities, profession, a user'spreferences, or a user's current location), or to control whether and/orhow to receive content from the content server that may be more relevantto the user. In addition, certain data may be treated in one or moreways before it is stored or used, so that personally identifiableinformation is removed. For example, a user's identity may be treated sothat no personally identifiable information can be determined for theuser, or a user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over how information is collected about the userand used by a content server.

In situations in which the systems discussed here collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether programs orfeatures collect user information (e.g., information about a user'ssocial network, social actions or activities, profession, a user'spreferences, or a user's current location), or to control whether and/orhow to receive content from the content server that may be more relevantto the user. In addition, certain data may be treated in one or moreways before it is stored or used, so that personally identifiableinformation is removed. For example, a user's identity may be treated sothat no personally identifiable information can be determined for theuser, or a user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over how information is collected about the userand used by a content server.

An apparatus to dynamically display additional metadata for a video in afocus area of an electronic program guide (EPG) is also described. Inone implementation, the apparatus includes means for receiving metadatafor a plurality of media content items. The metadata comprises ascheduled duration for streaming each of the plurality of media contentitems. The apparatus includes means for displaying a plurality of cellsfor the plurality of media content items in an overview area in anelectronic program guide (EPG) in a user interface. The plurality ofcells comprising a subset of the metadata for a respective media contentitem.

The apparatus includes means for receiving, via the EPG in the userinterface, input of a selection of one of the plurality of media contentitems and means for moving a cell comprising a limited set of metadatafor the selected media content item from the overview area to a focusarea in the EPG. The apparatus includes means for, in response todetermining that a scheduled duration for streaming the selected mediacontent item does not satisfy a condition pertaining to a maximum timeinterval of the focus area, adjusting, via a processing device, atimeline of the focus area based on the scheduled duration for streamingthe selected media content item. The apparatus includes means forreplacing the subset of metadata in the cell in the focus area withexpanded metadata for the selected media content item.

The apparatus includes means for adjusting a width of the cell of theselected media content item based on the maximum time interval of thefocus area. The apparatus includes means for determining that theselected media content item is currently streaming and playing a sampleof the selected media content item in the focus area. The sample isplayed as an underlay of a display of the expanded metadata of theselected media content item.

The apparatus includes means for displaying an image of a frame of theselected media content item in the focus area as an underlay of adisplay of the expanded metadata of the selected media content item inthe focus area. The apparatus includes means for adjusting widths ofremaining cells of the plurality of cells in the overview area based onthe adjusted timeline of the focus area. The apparatus includes meansfor displaying a preview area adjacent to the focus area in the EPG, thepreview area comprising a cell representing another media content itemthat is scheduled to play immediately after the selected media contentitem, the cell comprising at least a portion of additional metadata ofthe other media content item.

The apparatus includes means for receiving input of a selection of thecell in the preview area, moving the cell from the preview area to thefocus area, in response to a determination that a scheduled duration forstreaming the other media content item is less than or equal to than themaximum time interval of the focus area, adjusting the timeline of thefocus area based on the scheduled duration for streaming the other mediacontent item, and in response to a determination that the scheduledduration for streaming the other media content item is greater than themaximum time interval of the focus area, adjusting the timeline of thefocus area to the maximum time interval. The apparatus includes meansfor adjusting a width of the cell moved from the preview area to thefocus area to match the width of the focus area.

In one implementation, the scheduled durations for the plurality ofmedia content items is based on a playlist of media content itemscreated for a particular user.

What is claimed is:
 1. A method implemented by a mobile computingdevice, comprising: receiving metadata for a plurality of media contentitems, wherein the metadata comprises a scheduled duration for streamingeach of the plurality of media content items; displaying a plurality ofcells for the plurality of media content items in an overview area in anelectronic program guide (EPG) in a user interface, the plurality ofcells comprising a subset of the metadata for a respective media contentitem; receiving, via the EPG in the user interface, input of a selectionof one of the plurality of media content items; moving a first cellassociated with the selected media content item from the overview areato a focus area in the EPG, wherein moving of the first cell comprisesreplacing a subset of metadata of the selected media content item withexpanded metadata of the selected media content item for presentation inthe focus area; determining whether a scheduled duration for streamingthe selected media content items satisfies a maximum time interval ofthe focus area, wherein the maximum time interval sets a limit for aperiod of time represented by a timeline of the focus area; and inresponse to determining that the scheduled duration for streaming theselected media content item does not satisfy the maximum time intervalof the focus area, adjusting, via a processing device, the timeline ofthe focus area to present a time interval that matches a scheduled starttime and a scheduled end time of the selected media content item,setting a first width of the focus area to a predetermined widthirrespective of the scheduled duration, and displaying a preview areaadjacent to the focus area in the EPG, wherein a second width of thepreview area is set based on the first width of the focus area.
 2. Themethod of claim 1, further comprising: in response to determining thatthe scheduled duration for streaming the selected media content itemdoes satisfy the maximum time interval of the focus area, adjusting thetimeline of the focus area to present a time interval that matches themaximum time interval, wherein the preview area is not displayedresponsive to determining that the scheduled duration for streaming theselected media content item does satisfy the maximum time interval ofthe focus area.
 3. The method of claim 1, further comprising:determining that the selected media content item is currently streaming;and playing a sample of the selected media content item in the focusarea.
 4. The method of claim 3, wherein the sample is played as anunderlay of a display of the expanded metadata of the selected mediacontent item.
 5. The method of claim 1, further comprising: displayingan image of a frame of the selected media content item in the focus areaas an underlay of a display of the expanded metadata of the selectedmedia content item in the focus area.
 6. The method of claim 1, furthercomprising: adjusting widths of remaining cells of the plurality ofcells in the overview area based on the adjusted timeline of the focusarea.
 7. The method of claim 1, further comprising: displaying thepreview area adjacent to the focus area in the EPG, the preview areacomprising a second cell representing another an other media contentitem that is scheduled to play immediately after the selected mediacontent item, the second cell comprising at least a portion ofadditional metadata of the other media content item.
 8. The method ofclaim 7, further comprising: receiving input of a selection of thesecond cell in the preview area; moving the second cell from the previewarea to the focus area; in response to a determination that a scheduledduration for streaming the other media content item is less or equal tothan the maximum time interval of the focus area, adjusting the timelineof the focus area based on the scheduled duration for streaming theother media content item; and in response to a determination that thescheduled duration for streaming the other media content item is greaterthan the maximum time interval of the focus area, adjusting the timelineof the focus area to the maximum time interval.
 9. The method of claim8, further comprising: adjusting a width of the second cell moved fromthe preview area to the focus area to match a third width of the focusarea.
 10. The method of claim 1, wherein the scheduled durations for theplurality of media content items is based on a playlist of media contentitems created for a particular user.
 11. A system comprising: a memorystoring instructions; a processing device to execute the instructionsto: receive metadata for a plurality of media content items, wherein themetadata comprises a scheduled duration for streaming each of theplurality of media content items; display a plurality of cells for theplurality of media content items in an overview area in an electronicprogram guide (EPG) in a user interface, the plurality of cellscomprising a subset of the metadata for a respective media content item;receive, via the EPG in the user interface, input of a selection of oneof the plurality of media content items; move a first cell associatedwith the selected media content item from the overview area to a focusarea in the EPG, wherein moving of the first cell comprises replacing asubset of metadata of the selected media content item with expandedmetadata of the selected media content item for presentation in thefocus area; determine whether a scheduled duration for streaming theselected media content items satisfies to a maximum time interval of thefocus area, wherein the maximum time interval sets a limit for a periodof time represented by a timeline of the focus area; and in response todetermining that the scheduled duration for streaming the selected mediacontent item does not satisfy the maximum time interval of the focusarea, adjust, via a processing device, the timeline of the focus area topresent a time interval that matches a scheduled start time and ascheduled end time of the selected media content item, and set a firstwidth of the focus area to a predetermined width irrespective of thescheduled duration, display a preview area adjacent to the focus area inthe EPG, wherein a second width of the preview area is set based on thefirst width of the focus area.
 12. The system of claim 11, wherein theprocessing device is further to: in response to determining that thescheduled duration for streaming the selected media content item doessatisfy the maximum time interval of the focus area, adjust the timelineof the focus area to present a time interval that matches the maximumtime interval, wherein the preview area is not displayed responsive todetermining that the scheduled duration for streaming the selected mediacontent item does satisfy the maximum time interval of the focus area.13. The system of claim 11, wherein the processing device is further to:determine that the selected media content item is currently streaming;and play a sample of the selected media content item in the focus area.14. The system of claim 13, wherein the sample is played as an underlayof a display of the expanded metadata of the selected media contentitem.
 15. The system of claim 11, wherein the processing device isfurther to: adjust widths of remaining cells of the plurality of cellsin the overview area based on the adjusted timeline of the focus area.16. The system of claim 11, wherein the processing device is further to:display the preview area adjacent to the focus area in the EPG, thepreview area comprising a second cell representing another media contentitem that is scheduled to play immediately after the selected mediacontent item, the second cell comprising at least a portion ofadditional metadata of the other media content item.
 17. Anon-transitory computer readable medium having instructions storedthereon that, when executed by a processing device of a user device,cause the processing device to perform operations comprising: receivingmetadata for a plurality of media content items, wherein the metadatacomprises a scheduled duration for streaming each of the plurality ofmedia content items; displaying a plurality of cells for the pluralityof media content items in an overview area in an electronic programguide (EPG) in a user interface, the plurality of cells comprising asubset of the metadata for a respective media content item; receiving,via the EPG in the user interface, input of a selection of one of theplurality of media content items; moving a first cell associated withthe selected media content item from the overview area to a focus areain the EPG, wherein moving of the first cell comprises replacing asubset of metadata of the selected media content item with expandedmetadata of the selected media content item for presentation in thefocus area; determining whether a scheduled duration for streaming theselected media content items satisfies a maximum time interval of thefocus area, wherein the maximum time interval sets a limit for a periodof time represented by a timeline of the focus area; and in response todetermining that the scheduled duration for streaming the selected mediacontent item does not satisfy the maximum time interval of the focusarea, adjusting, via the processing device, the timeline of the focusarea to present a time interval that matches a scheduled start time anda scheduled end time of the selected media content item, setting a firstwidth of the focus area to a predetermined width irrespective of thescheduled duration, and displaying a preview area adjacent to the focusarea in the EPG, wherein a second width of the preview area is set basedon the first width of the focus area.
 18. The non-transitory computerreadable medium of claim 17, the operations further comprising: inresponse to determining that the scheduled duration for streaming theselected media content item does satisfy the maximum time interval ofthe focus area, adjusting the timeline of the focus area to present atime interval that matches the maximum time interval, wherein thepreview area is not displayed responsive to determining that thescheduled duration for streaming the selected media content item doessatisfy the maximum time interval of the focus area.
 19. Thenon-transitory computer readable medium of claim 17, the operationsfurther comprising: determining that the selected media content item iscurrently streaming; and playing a sample of the selected media contentitem in the focus area.
 20. The non-transitory computer readable mediumof claim 19, wherein the sample is played as an underlay of a display ofthe expanded metadata of the selected media content item.